package com.geek.javase.ch13.videodemo.serial;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

/**
 *
 * 序列化
 * 用一个字节序列可以表示一个对象，该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息。字节序列写出到文件之后，相当于文件中持久保存了一个对象的信息。
 *
 * 特点：
 * 1.用一个字节序列，表示对象信息，存储至“介质”（文本、内存等）中，这个过程成为序列化过程
 * 2.写  将对象的字节序列写出至文本中，则可以持久化保存对象的信息
 *
 * ObjectOutputStream
 * 1.构造方法 public ObjectOutputStream(OutputStream out)
 * 2.写      writeObject(Object obj)
 * 3.刷新    public void flush()
 */
public class SerializableDemo1 {

    public static void main(String[] args) {
        try ( ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("user.txt")) ){
            User user = new User("张三" , 18 , "安徽淮北" , "123456");
            user.setCount(20);
            System.out.println("序列化  user = "+user);
            oos.writeObject(user);
            oos.flush();
            System.out.println("序列化完成~");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

}
